package com.cskaoyan.javase.oop1._12anonymous;


/**
 * 匿名/佚名：没有名字
 * 匿名对象就是指没有名字的对象，就是没有引用指向它的对象
 * 匿名对象的创建语法：
 *      new 类名(实参);
 * 因为匿名对象没有引用，所以必须在创建时直接使用。否则后面就无法使用了。
 * 匿名对象的使用方式：
 *      1.直接在后面调用方法/访问成员变量等
 *      2.和方法一起使用：
 *          a.作为方法的实参传入方法
 *          b.作为方法的返回值
 * 优点：
 *      1.方便，快，简洁
 *      2.理论上来说，匿名对象会更快成为垃圾对象，会更快被GC回收，内存的利用效率更高
 *          但是这个优点意义不大，GC不是立刻回收垃圾对象的，GC具有不确定性
 * 缺点：
 *      一次性的，不能多次使用。
 *
 * 综上，匿名对象比较适合在某个对象只会单独使用一次时，方便快捷的方法
 * 但如果对象需要使用多次，就不要用这种方法了。
 *
 * @since 09:37
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        Student s = new Student();
        s.eat();
        new Student().eat();
        System.out.println(new Student());

        test(s);
        test(new Student());

        Student test = test();

    }

    public static void test(Student s){
        s.eat();
    }
    public static Student test(){
        return new Student();
    }
}

class Student {
    public void eat() {
        System.out.println("我吃🍅！");
    }
}